package com.seguriapp.common.gwt.client.celltable;

import com.google.gwt.cell.client.Cell;
import com.google.gwt.user.cellview.client.Column;

/**
 * Columna que contiene un hyperlink.
 */
public abstract class HyperLinkColumn<T> extends Column<T, String> {

  public HyperLinkColumn() {
    super(new HyperlinkCell());
  }

  /**
   * El valor devuelto por esta columna es usado como texto del hyperlink.
   */
  @Override
  public abstract String getValue(T object);

  public void setTooltip(final String tooltip) {
    final Cell<String> celda = getCell();
    if (celda != null && celda instanceof HyperlinkCell) {
      final HyperlinkCell hyperlinkCell = (HyperlinkCell) celda;
      hyperlinkCell.setTooltip(tooltip);
    }
  }

  public void setStyle(final String style) {
    final Cell<String> celda = getCell();
    if (celda != null && celda instanceof HyperlinkCell) {
      final HyperlinkCell hyperlinkCell = (HyperlinkCell) celda;
      hyperlinkCell.setStyle(style);
    }
  }
}
